// src/api/client.js
import axios from 'axios'
import store from '@/store'

const apiClient = axios.create({
    headers: {
        'Content-Type': 'application/json'
    }
})

// 添加请求拦截器来动态设置 baseURL
apiClient.interceptors.request.use((config) => {
    // 从 Vuex store 获取 baseURL
    config.baseURL = store.getters.getApiBaseUrl
    return config
})

// 请求拦截器 - 添加认证token
apiClient.interceptors.request.use(
    config => {
        const token = localStorage.getItem('authToken')
        if (token) {
            config.headers.Authorization = `Bearer ${token}`
        }
        return config
    },
    error => {
        return Promise.reject(error)
    }
)

// 响应拦截器
apiClient.interceptors.response.use(
    response => response,
    error => {
        if (error.response && error.response.status === 401) {
            // 处理未授权错误
            console.error('未授权，请重新登录')
            // 这里可以触发登出操作，例如：store.dispatch('logout')
        }
        return Promise.reject(error)
    }
)

export default apiClient